// nuxt 的插件机制
// nuxt 当中没有 main.js, 如何在 创建 vue 根实例之前执行某些代码 靠插件机制
// 其实所有在 nuxt.config.js 的 plugins 数组里面配置了路径的文件都会在 vuejs 之前执行, 相当于以前 main.js 入口文件
import { Message } from "element-ui";
// axios拦截错误插件

// 如果在插件里面需要获取到 nuxt 本身
// 需要 export default
export default function ({ $axios, redirect }) {
    // $axios.onRequest(config => {
    //     console.log('Makinig request to' + config.url);
    // })
    $axios.onError(error => {

        // const { statusCode, message } = error.response.data
        // 这里是每当出错的时候都会被拦截
        console.log(error);
        // 这个 err 是一个错误对象, log 的时候看不出来有什么用
        // 用 dir 可以看到里面的内容
        console.dir(error);
        console.log('错误信息是: ' + error.response.data.message);
        // 弹出一个提示告诉用户
        // this.$message.error('') 在这里由于不是组件内部, 没有 this 可以用
        // 可以单独引入element ui 当中的 Message 组件
        Message.error(error.response.data.message || '系统错误')

        // 如果需要跳转页面, 比如说需要跳转到登录页
        // 可以从 nuxt 中拿到 redirect 函数即可
        // redirect('/user/login')
    })

}